1. Field of the Invention
The invention relates to data rate controls, and in particular, to an isochronous device adapted in Universal Serial Bus (USB) connections.
2. Description of the Related Art
Universal Serial Bus (USB) is a prevailing technology for data transmission. FIG. 1 shows a conventional USB device 120 coupled to a first device 110 through a USB connection. The first device 110 is a data source that sends an input data stream #DIN to the USB device 120 at a first data rate. The USB device 120 comprises a buffer 122 and a second device 124. The buffer 122 buffers the input data stream #DIN before outputting it to the second device 124. The second device 124 serves as a data receiver that pulls an output data stream #DOUT from the buffer 122 at an output data rate. To maintain synchronicity, the first data rate is designated to be identical to the output data rate. In practice, however, there are always clock mismatches between clock generators (not shown) within each of the first device 110 and second device 124, thus the synchronicity of the input and output data rates is an issue to be solved.
There exist various approaches to synchronize mismatches of data rates between the first device 110 and second device 124. For example, according to US patent application publication US/20060209684, Bei et al. discloses “DATA RATE CONTROLRE AND METHOD OF CONTROL THEREOF”, an isochronous circuit is provided to monitor the occupation of the buffer 122 and generate a feedback signal to adjust the first data rate when sending the input data stream #DIN. Specifically, the occupation of the buffer 122 is categorized into a plurality of levels, such as high, medium and low. The feedback signal increases or decreases the first data rate according to the capacity levels. Data rate variations of the input data rate RIN and output data rate ROUT in the buffer 122 are shown in FIG. 2. The output data rate ROUT may be a constant value, whereas the input data rate RIN is adjusted periodically to prevent the buffer 122 from overrun or under run. With the approach disclosed by Bei et al, however, buffer swing, or variations between the peak and the bottom of the capacity, is too large to reduce the buffer size.
In most applications, buffer size is critical when considering costs, thus desirability is for smallest size possible. If a small buffer is implemented using Bei's method, there is still a high probability to induce undesirable buffer overrun or under run. Therefore, an improved architecture is desirable.